205. 同构字符串

205. 同构字符串

Similar Question

290. 单词规律

Solution Tips

方案一: 双向映射

pPptbJP.png

var isIsomorphic = function(s, t) {
    const s2t = {};
    const t2s = {};
    const len = s.length;
    for (let i = 0; i < len; ++i) {
        const x = s[i], y = t[i];
        if ((s2t[x] && s2t[x] !== y) || (t2s[y] && t2s[y] !== x)) {
            return false;
        }
        s2t[x] = y;
        t2s[y] = x;
    }
    return true;
};

映射成同一个 Result

用数组去重的思路,给第一次出现的字母一个编号,用数字编号来表示该字符串的结构,最后比较该数字串

  var isIsomorphic = function(s, t) {
    const _s = translate(s)
    const _t = translate(t)
    return _s === _t
    function translate(str){
      const map = {}
      let counter = 0
      let res = ''
      for (let i = 0; i < str.length; i++) {
        if(map[str[i]]===undefined) map[str[i]] = counter++
        res += map[str[i]]
      }
      return res
    }
  }

在优化一下就是一个循环同时进行判断,一旦不相同马上返回